﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace MikroObject
{
    public enum EvrakTipleri : byte
    {
        SatisFaturasi = 0,
        AlisFaturasi = 1,
        AlisIrsaliyesi = 2,
        DepoSevk = 3
    }

    interface IBackOffice
    {
        bool AddtoAnaGrup(string kod, string adi, SqlTransaction trn);
        bool AddtoKasa(string kod, string adi, SqlTransaction trn);
        bool AddtoDepo(string kod, string adi, SqlTransaction trn);
        bool AddtoAltGrup(string kod, string adi, string anagrupkod, SqlTransaction trn);
        bool AddtoTeminci(string kod, string adi, string adi2, string telefon1, string telefon2, string fax, string ilgikisi, string email, string muhasebeKodu, string vergidaire, string vergino, string adres1, string adres2, SqlTransaction trn);
        bool AddToStok(string kod, string adi, string ana_grup_kod, string birim1_ad, decimal birim1_katsayi, string birim2_ad, decimal birim2_katsayi, string alt_grup_kod, string teminci_kod, int kdv_orani, string muhasebekodu, decimal fiyat1, decimal fiyat2, decimal fiyat3, SqlTransaction trn);
        Dictionary<int, int> KdvList();
        int CharEkle(EvrakTipleri evrakTip, SqlTransaction trn, string evrakSeri, int evrakSira, DateTime evrakTarihi, decimal meblag, decimal[] vergiler, string saticiKodu, string cariKodu, decimal araToplam, string belgeNo, int vade, string aciklama, decimal isk1Tutar, decimal isk2Tutar, decimal isk3Tutar, int cariCins, string kasaKodu);
        int SharEkle(EvrakTipleri evrakTip, SqlTransaction trn, string evrakSeri, int evrakSira, DateTime evrakTarihi, int evrakSatir, string stokKodu, string cariKod, string plasiyerKod, decimal miktar, decimal tutar, int kdvSira, decimal kdvOran, int charRecNo, int girisDepoNo, int cikisDepoNo, decimal isk1Tutar, decimal isk2Tutar, decimal isk3Tutar);
        int[] SharEvrakTip(EvrakTipleri evrakTip);
        int[] CharEvrakTip(EvrakTipleri evrakTip);
        void BaglantiKaydet(EvrakTipleri evrakTip, int fastId, int mikroSharId, int mikroCharId, string mikroSeri, int mikroSira, SqlTransaction trn);
        void BaglantiDuzelt(EvrakTipleri evrakTip, int fastId, SqlTransaction trn);
        int MaxEvrakNo(EvrakTipleri evrakTip, string seri, SqlTransaction trn);
        void EvrakSil(EvrakTipleri evrakTip, string seri, int sira, SqlTransaction trn);
    }
}
